﻿2026-06-03T22:00:56.7615815Z ##[group]Run ./traceable-reqs lint || true
2026-06-03T22:00:56.7615988Z [36;1m./traceable-reqs lint || true[0m
2026-06-03T22:00:56.7641501Z shell: /usr/bin/bash -e {0}
2026-06-03T22:00:56.7641610Z ##[endgroup]
2026-06-03T22:00:56.7760398Z Requirement quality findings (15); 125 requirements queued for agent review:
2026-06-03T22:00:56.7762130Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7763030Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-03T22:00:56.7764102Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7765100Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7765886Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-03T22:00:56.7766791Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-03T22:00:56.7767794Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7768868Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7769901Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-03T22:00:56.7770542Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-03T22:00:56.7771150Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-03T22:00:56.7772001Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7772811Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-03T22:00:56.7773465Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-03T22:00:56.7774081Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-03T22:00:56.7774108Z 
2026-06-03T22:00:56.7774286Z # Requirement quality review
2026-06-03T22:00:56.7774302Z 
2026-06-03T22:00:56.7774754Z You are reviewing 125 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-03T22:00:56.7775178Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-03T22:00:56.7775601Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-03T22:00:56.7775907Z this command's output. Your task is the rubric items below.
2026-06-03T22:00:56.7775946Z 
2026-06-03T22:00:56.7776092Z ## Rubric
2026-06-03T22:00:56.7776111Z 
2026-06-03T22:00:56.7776759Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-03T22:00:56.7777373Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-03T22:00:56.7777906Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-03T22:00:56.7778274Z - **active-voice** — clear subject and active verb.
2026-06-03T22:00:56.7778302Z 
2026-06-03T22:00:56.7778849Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-03T22:00:56.7779295Z clear concerns.
2026-06-03T22:00:56.7780380Z 
2026-06-03T22:00:56.7780579Z ## Requirements
2026-06-03T22:00:56.7780600Z 
2026-06-03T22:00:56.7780755Z ### REQ-ARCH-1
2026-06-03T22:00:56.7781000Z - Title: Many small acyclically-layered crates
2026-06-03T22:00:56.7781174Z - Required stages: impl
2026-06-03T22:00:56.7781191Z 
2026-06-03T22:00:56.7781358Z ### REQ-ARCH-2
2026-06-03T22:00:56.7781969Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-03T22:00:56.7782148Z - Required stages: impl
2026-06-03T22:00:56.7782168Z 
2026-06-03T22:00:56.7782331Z ### REQ-ARCH-3
2026-06-03T22:00:56.7782749Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-03T22:00:56.7782952Z - Required stages: impl, unit
2026-06-03T22:00:56.7782974Z 
2026-06-03T22:00:56.7783139Z ### REQ-ARCH-4
2026-06-03T22:00:56.7783481Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-03T22:00:56.7783685Z - Required stages: impl, unit
2026-06-03T22:00:56.7783719Z 
2026-06-03T22:00:56.7783875Z ### REQ-DAEMON-1
2026-06-03T22:00:56.7784188Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-03T22:00:56.7784369Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7784393Z 
2026-06-03T22:00:56.7784541Z ### REQ-DAEMON-2
2026-06-03T22:00:56.7784788Z - Title: Broker/brain split for seamless self-update
2026-06-03T22:00:56.7784973Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7784987Z 
2026-06-03T22:00:56.7785142Z ### REQ-DAEMON-3
2026-06-03T22:00:56.7785414Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-03T22:00:56.7785595Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7785609Z 
2026-06-03T22:00:56.7785760Z ### REQ-DAEMON-4
2026-06-03T22:00:56.7785963Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-03T22:00:56.7786140Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7786154Z 
2026-06-03T22:00:56.7786301Z ### REQ-STORE-1
2026-06-03T22:00:56.7787690Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-03T22:00:56.7787798Z - Required stages: 
2026-06-03T22:00:56.7787808Z 
2026-06-03T22:00:56.7787908Z ### REQ-MANIFEST-1
2026-06-03T22:00:56.7788117Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-03T22:00:56.7788221Z - Required stages: doc, impl, unit
2026-06-03T22:00:56.7788237Z 
2026-06-03T22:00:56.7788328Z ### REQ-SEAM-SPAWN
2026-06-03T22:00:56.7788440Z - Title: spawn-session seam
2026-06-03T22:00:56.7788541Z - Required stages: impl, unit
2026-06-03T22:00:56.7788551Z 
2026-06-03T22:00:56.7788650Z ### REQ-SEAM-POSTSPAWN
2026-06-03T22:00:56.7788785Z - Title: post-spawn / api bind seam with boot nonce
2026-06-03T22:00:56.7788890Z - Required stages: impl, unit
2026-06-03T22:00:56.7788906Z 
2026-06-03T22:00:56.7789000Z ### REQ-SEAM-PSYCHE
2026-06-03T22:00:56.7789146Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-03T22:00:56.7789251Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7789260Z 
2026-06-03T22:00:56.7789349Z ### REQ-SEAM-HISTORY
2026-06-03T22:00:56.7789941Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-03T22:00:56.7790140Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7790157Z 
2026-06-03T22:00:56.7790313Z ### REQ-SEAM-ACTIVITY
2026-06-03T22:00:56.7790653Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-03T22:00:56.7790834Z - Required stages: impl, unit
2026-06-03T22:00:56.7790850Z 
2026-06-03T22:00:56.7790997Z ### REQ-SEAM-INJECT
2026-06-03T22:00:56.7791301Z - Title: inject-input methods configurable per activity-state
2026-06-03T22:00:56.7791472Z - Required stages: impl, unit
2026-06-03T22:00:56.7791486Z 
2026-06-03T22:00:56.7791646Z ### REQ-SEAM-RESUME
2026-06-03T22:00:56.7792145Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-03T22:00:56.7792259Z - Required stages: impl, unit
2026-06-03T22:00:56.7792269Z 
2026-06-03T22:00:56.7792365Z ### REQ-SEAM-CAPABILITY
2026-06-03T22:00:56.7792523Z - Title: Hostable endpoint-types capability declaration
2026-06-03T22:00:56.7792623Z - Required stages: impl, unit
2026-06-03T22:00:56.7792632Z 
2026-06-03T22:00:56.7792857Z ### REQ-SEAM-UPDATE
2026-06-03T22:00:56.7793038Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-03T22:00:56.7793135Z - Required stages: impl, unit
2026-06-03T22:00:56.7793147Z 
2026-06-03T22:00:56.7793232Z ### REQ-API-1
2026-06-03T22:00:56.7793420Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-03T22:00:56.7793525Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7793535Z 
2026-06-03T22:00:56.7793625Z ### REQ-API-2
2026-06-03T22:00:56.7793868Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-03T22:00:56.7793982Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7793992Z 
2026-06-03T22:00:56.7794077Z ### REQ-API-3
2026-06-03T22:00:56.7794223Z - Title: commune/signoff are file-drops, not commands
2026-06-03T22:00:56.7794328Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7794337Z 
2026-06-03T22:00:56.7794423Z ### REQ-START-1
2026-06-03T22:00:56.7794640Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-03T22:00:56.7794747Z - Required stages: impl, unit
2026-06-03T22:00:56.7794757Z 
2026-06-03T22:00:56.7794840Z ### REQ-START-2
2026-06-03T22:00:56.7794991Z - Title: Harness-hosted startup: api seed then listen
2026-06-03T22:00:56.7795097Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7795106Z 
2026-06-03T22:00:56.7795190Z ### REQ-START-3
2026-06-03T22:00:56.7795373Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-03T22:00:56.7795479Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7795489Z 
2026-06-03T22:00:56.7795578Z ### REQ-START-4
2026-06-03T22:00:56.7795718Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-03T22:00:56.7795817Z - Required stages: impl, unit
2026-06-03T22:00:56.7795827Z 
2026-06-03T22:00:56.7795913Z ### REQ-EP-1
2026-06-03T22:00:56.7796049Z - Title: Day-one endpoint types; open type system
2026-06-03T22:00:56.7796143Z - Required stages: impl, unit
2026-06-03T22:00:56.7796157Z 
2026-06-03T22:00:56.7796242Z ### REQ-EP-2
2026-06-03T22:00:56.7796416Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-03T22:00:56.7796516Z - Required stages: impl, unit
2026-06-03T22:00:56.7796525Z 
2026-06-03T22:00:56.7796608Z ### REQ-EP-3
2026-06-03T22:00:56.7796805Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-03T22:00:56.7796905Z - Required stages: impl, unit
2026-06-03T22:00:56.7796914Z 
2026-06-03T22:00:56.7796997Z ### REQ-EP-4
2026-06-03T22:00:56.7797161Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-03T22:00:56.7797269Z - Required stages: 
2026-06-03T22:00:56.7797285Z 
2026-06-03T22:00:56.7797368Z ### REQ-EP-5
2026-06-03T22:00:56.7798215Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-03T22:00:56.7798308Z - Required stages: 
2026-06-03T22:00:56.7798322Z 
2026-06-03T22:00:56.7798410Z ### REQ-INST-1
2026-06-03T22:00:56.7798576Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-03T22:00:56.7798668Z - Required stages: 
2026-06-03T22:00:56.7798677Z 
2026-06-03T22:00:56.7798764Z ### REQ-INST-2
2026-06-03T22:00:56.7798882Z - Title: Per-node files, synced Psyche mind
2026-06-03T22:00:56.7798974Z - Required stages: 
2026-06-03T22:00:56.7798983Z 
2026-06-03T22:00:56.7799067Z ### REQ-INST-3
2026-06-03T22:00:56.7799223Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-03T22:00:56.7799662Z - Required stages: 
2026-06-03T22:00:56.7799683Z 
2026-06-03T22:00:56.7799780Z ### REQ-INST-4
2026-06-03T22:00:56.7799989Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-03T22:00:56.7800083Z - Required stages: 
2026-06-03T22:00:56.7800093Z 
2026-06-03T22:00:56.7800182Z ### REQ-INST-5
2026-06-03T22:00:56.7800381Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-03T22:00:56.7800610Z - Required stages: 
2026-06-03T22:00:56.7800620Z 
2026-06-03T22:00:56.7800710Z ### REQ-INST-6
2026-06-03T22:00:56.7800914Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-03T22:00:56.7801009Z - Required stages: 
2026-06-03T22:00:56.7801019Z 
2026-06-03T22:00:56.7801112Z ### REQ-INST-7
2026-06-03T22:00:56.7801266Z - Title: Subnet registry + bare-id resolution policy
2026-06-03T22:00:56.7801360Z - Required stages: 
2026-06-03T22:00:56.7801370Z 
2026-06-03T22:00:56.7801453Z ### REQ-INST-8
2026-06-03T22:00:56.7801613Z - Title: Remote-control mode distinct from local operation
2026-06-03T22:00:56.7801708Z - Required stages: 
2026-06-03T22:00:56.7801722Z 
2026-06-03T22:00:56.7801805Z ### REQ-INST-9
2026-06-03T22:00:56.7802005Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-03T22:00:56.7802092Z - Required stages: 
2026-06-03T22:00:56.7802101Z 
2026-06-03T22:00:56.7802192Z ### REQ-INST-10
2026-06-03T22:00:56.7802428Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-03T22:00:56.7802535Z - Required stages: 
2026-06-03T22:00:56.7802545Z 
2026-06-03T22:00:56.7802639Z ### REQ-INST-11
2026-06-03T22:00:56.7802882Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-03T22:00:56.7802977Z - Required stages: 
2026-06-03T22:00:56.7802987Z 
2026-06-03T22:00:56.7803071Z ### REQ-INST-12
2026-06-03T22:00:56.7803417Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-03T22:00:56.7803517Z - Required stages: 
2026-06-03T22:00:56.7803526Z 
2026-06-03T22:00:56.7803611Z ### REQ-INST-13
2026-06-03T22:00:56.7803820Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-03T22:00:56.7803913Z - Required stages: 
2026-06-03T22:00:56.7803922Z 
2026-06-03T22:00:56.7804011Z ### REQ-INST-14
2026-06-03T22:00:56.7804470Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-03T22:00:56.7804565Z - Required stages: 
2026-06-03T22:00:56.7804574Z 
2026-06-03T22:00:56.7804664Z ### REQ-INST-15
2026-06-03T22:00:56.7805562Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-03T22:00:56.7805659Z - Required stages: 
2026-06-03T22:00:56.7805668Z 
2026-06-03T22:00:56.7805761Z ### REQ-REACH-1
2026-06-03T22:00:56.7805916Z - Title: Off-node remote-drive detection + file transfer
2026-06-03T22:00:56.7806011Z - Required stages: 
2026-06-03T22:00:56.7806020Z 
2026-06-03T22:00:56.7806105Z ### REQ-REACH-2
2026-06-03T22:00:56.7806272Z - Title: Remote command execution (deferred, consent-gated)
2026-06-03T22:00:56.7806369Z - Required stages: 
2026-06-03T22:00:56.7806379Z 
2026-06-03T22:00:56.7806463Z ### REQ-MSG-1
2026-06-03T22:00:56.7807013Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-03T22:00:56.7807120Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7807131Z 
2026-06-03T22:00:56.7807222Z ### REQ-MSG-2
2026-06-03T22:00:56.7807531Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-03T22:00:56.7807636Z - Required stages: impl, unit
2026-06-03T22:00:56.7807645Z 
2026-06-03T22:00:56.7807850Z ### REQ-MSG-3
2026-06-03T22:00:56.7808307Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-03T22:00:56.7808419Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7808429Z 
2026-06-03T22:00:56.7808526Z ### REQ-NODE-IDENTITY
2026-06-03T22:00:56.7808775Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-03T22:00:56.7808960Z - Required stages: impl, unit
2026-06-03T22:00:56.7808970Z 
2026-06-03T22:00:56.7809052Z ### REQ-NET-1
2026-06-03T22:00:56.7809255Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-03T22:00:56.7809584Z - Required stages: impl, unit
2026-06-03T22:00:56.7809605Z 
2026-06-03T22:00:56.7809741Z ### REQ-NET-2
2026-06-03T22:00:56.7809957Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-03T22:00:56.7810056Z - Required stages: impl
2026-06-03T22:00:56.7810066Z 
2026-06-03T22:00:56.7810160Z ### REQ-NET-3
2026-06-03T22:00:56.7810343Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-03T22:00:56.7810435Z - Required stages: 
2026-06-03T22:00:56.7810444Z 
2026-06-03T22:00:56.7810536Z ### REQ-PAIR-1
2026-06-03T22:00:56.7810643Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-03T22:00:56.7810745Z - Required stages: impl, unit
2026-06-03T22:00:56.7810754Z 
2026-06-03T22:00:56.7810850Z ### REQ-PAIR-2
2026-06-03T22:00:56.7811006Z - Title: Local trust store with TOFU + warn-on-change
2026-06-03T22:00:56.7811109Z - Required stages: impl, unit
2026-06-03T22:00:56.7811119Z 
2026-06-03T22:00:56.7811204Z ### REQ-PAIR-3
2026-06-03T22:00:56.7811360Z - Title: Fetch current pairing code from any paired node
2026-06-03T22:00:56.7811456Z - Required stages: impl, unit
2026-06-03T22:00:56.7811471Z 
2026-06-03T22:00:56.7811557Z ### REQ-PAIR-4
2026-06-03T22:00:56.7811672Z - Title: Subnet naming on first pairing
2026-06-03T22:00:56.7811768Z - Required stages: impl, unit
2026-06-03T22:00:56.7811783Z 
2026-06-03T22:00:56.7811872Z ### REQ-PAIR-5
2026-06-03T22:00:56.7812229Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-03T22:00:56.7812332Z - Required stages: impl, unit
2026-06-03T22:00:56.7812341Z 
2026-06-03T22:00:56.7812431Z ### REQ-PAIR-6
2026-06-03T22:00:56.7812723Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-03T22:00:56.7812831Z - Required stages: impl, unit
2026-06-03T22:00:56.7812840Z 
2026-06-03T22:00:56.7812925Z ### REQ-PAIR-7
2026-06-03T22:00:56.7813098Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-03T22:00:56.7813191Z - Required stages: 
2026-06-03T22:00:56.7813201Z 
2026-06-03T22:00:56.7813284Z ### REQ-SEC-1
2026-06-03T22:00:56.7813753Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-03T22:00:56.7813843Z - Required stages: 
2026-06-03T22:00:56.7813857Z 
2026-06-03T22:00:56.7813947Z ### REQ-NOTIF-1
2026-06-03T22:00:56.7814381Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-03T22:00:56.7814472Z - Required stages: 
2026-06-03T22:00:56.7814481Z 
2026-06-03T22:00:56.7814569Z ### REQ-NOTIF-2
2026-06-03T22:00:56.7814872Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-03T22:00:56.7814972Z - Required stages: 
2026-06-03T22:00:56.7814981Z 
2026-06-03T22:00:56.7815073Z ### REQ-UPD-1
2026-06-03T22:00:56.7815194Z - Title: Peer-propagated update over P2P
2026-06-03T22:00:56.7815289Z - Required stages: 
2026-06-03T22:00:56.7815298Z 
2026-06-03T22:00:56.7815381Z ### REQ-UPD-2
2026-06-03T22:00:56.7815531Z - Title: All binaries signature-verified before handoff
2026-06-03T22:00:56.7815633Z - Required stages: impl, unit
2026-06-03T22:00:56.7815643Z 
2026-06-03T22:00:56.7815726Z ### REQ-UPD-3
2026-06-03T22:00:56.7816069Z - Title: No endpoint process terminates/suspends during self-update
2026-06-03T22:00:56.7816175Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7816184Z 
2026-06-03T22:00:56.7816270Z ### REQ-UPD-4
2026-06-03T22:00:56.7816462Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-03T22:00:56.7816566Z - Required stages: impl, unit
2026-06-03T22:00:56.7816575Z 
2026-06-03T22:00:56.7816765Z ### REQ-UPD-5
2026-06-03T22:00:56.7816910Z - Title: spt-core ripple-updates registered adapters
2026-06-03T22:00:56.7817012Z - Required stages: impl, unit
2026-06-03T22:00:56.7817021Z 
2026-06-03T22:00:56.7817106Z ### REQ-TERM-1
2026-06-03T22:00:56.7817293Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-03T22:00:56.7817394Z - Required stages: impl, unit
2026-06-03T22:00:56.7817404Z 
2026-06-03T22:00:56.7817488Z ### REQ-TERM-2
2026-06-03T22:00:56.7817688Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-03T22:00:56.7817792Z - Required stages: impl, unit
2026-06-03T22:00:56.7817801Z 
2026-06-03T22:00:56.7817889Z ### REQ-TERM-3
2026-06-03T22:00:56.7818036Z - Title: Byte-stream remote terminal streaming for v1
2026-06-03T22:00:56.7818136Z - Required stages: impl, unit
2026-06-03T22:00:56.7818144Z 
2026-06-03T22:00:56.7818232Z ### REQ-TERM-4
2026-06-03T22:00:56.7818653Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-03T22:00:56.7818770Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7818780Z 
2026-06-03T22:00:56.7818874Z ### REQ-FRONT-1
2026-06-03T22:00:56.7819057Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-03T22:00:56.7819152Z - Required stages: 
2026-06-03T22:00:56.7819161Z 
2026-06-03T22:00:56.7819252Z ### REQ-INSTALL-1
2026-06-03T22:00:56.7819788Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-03T22:00:56.7819905Z - Required stages: 
2026-06-03T22:00:56.7819922Z 
2026-06-03T22:00:56.7820014Z ### REQ-INSTALL-2
2026-06-03T22:00:56.7820171Z - Title: Marketplace-repackaging-friendly install
2026-06-03T22:00:56.7820264Z - Required stages: 
2026-06-03T22:00:56.7820275Z 
2026-06-03T22:00:56.7820367Z ### REQ-INSTALL-3
2026-06-03T22:00:56.7820526Z - Title: Idempotent + interactive-optional first run
2026-06-03T22:00:56.7820618Z - Required stages: 
2026-06-03T22:00:56.7820632Z 
2026-06-03T22:00:56.7820725Z ### REQ-INSTALL-4
2026-06-03T22:00:56.7821572Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-03T22:00:56.7821671Z - Required stages: 
2026-06-03T22:00:56.7821681Z 
2026-06-03T22:00:56.7821770Z ### REQ-MIGRATE-1
2026-06-03T22:00:56.7821959Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-03T22:00:56.7822064Z - Required stages: 
2026-06-03T22:00:56.7822079Z 
2026-06-03T22:00:56.7822169Z ### REQ-INFRA-1
2026-06-03T22:00:56.7822369Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-03T22:00:56.7822459Z - Required stages: 
2026-06-03T22:00:56.7822475Z 
2026-06-03T22:00:56.7822559Z ### REQ-DOCS-1
2026-06-03T22:00:56.7822784Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-03T22:00:56.7822878Z - Required stages: 
2026-06-03T22:00:56.7822888Z 
2026-06-03T22:00:56.7822980Z ### REQ-DOCS-2
2026-06-03T22:00:56.7823151Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-03T22:00:56.7823244Z - Required stages: 
2026-06-03T22:00:56.7823254Z 
2026-06-03T22:00:56.7823340Z ### REQ-DOCS-3
2026-06-03T22:00:56.7823608Z - Title: Diátaxis structure; one canonical way to do X
2026-06-03T22:00:56.7823704Z - Required stages: 
2026-06-03T22:00:56.7823713Z 
2026-06-03T22:00:56.7823799Z ### REQ-DOCS-4
2026-06-03T22:00:56.7824021Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-03T22:00:56.7824263Z - Required stages: 
2026-06-03T22:00:56.7824274Z 
2026-06-03T22:00:56.7824361Z ### REQ-DOCS-5
2026-06-03T22:00:56.7824579Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-03T22:00:56.7824669Z - Required stages: 
2026-06-03T22:00:56.7824679Z 
2026-06-03T22:00:56.7824802Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-03T22:00:56.7825020Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-03T22:00:56.7825229Z - Required stages: impl, unit
2026-06-03T22:00:56.7825240Z 
2026-06-03T22:00:56.7825356Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-03T22:00:56.7825522Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-03T22:00:56.7825631Z - Required stages: impl, unit
2026-06-03T22:00:56.7825641Z 
2026-06-03T22:00:56.7825752Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-03T22:00:56.7825893Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-03T22:00:56.7825989Z - Required stages: 
2026-06-03T22:00:56.7826003Z 
2026-06-03T22:00:56.7826107Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-03T22:00:56.7826311Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-03T22:00:56.7826412Z - Required stages: impl, unit
2026-06-03T22:00:56.7826429Z 
2026-06-03T22:00:56.7826532Z ### REQ-HAZARD-WORKER-PATH
2026-06-03T22:00:56.7826731Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-03T22:00:56.7826837Z - Required stages: impl, unit
2026-06-03T22:00:56.7826846Z 
2026-06-03T22:00:56.7826962Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-03T22:00:56.7827168Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-03T22:00:56.7827264Z - Required stages: 
2026-06-03T22:00:56.7827274Z 
2026-06-03T22:00:56.7827383Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-03T22:00:56.7827518Z - Title: Stdin session_id precedence over env (2.2)
2026-06-03T22:00:56.7827612Z - Required stages: 
2026-06-03T22:00:56.7827620Z 
2026-06-03T22:00:56.7827732Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-03T22:00:56.7827915Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-03T22:00:56.7828017Z - Required stages: impl, unit
2026-06-03T22:00:56.7828026Z 
2026-06-03T22:00:56.7828130Z ### REQ-HAZARD-GEN-START-NOW
2026-06-03T22:00:56.7828285Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-03T22:00:56.7828382Z - Required stages: impl, int
2026-06-03T22:00:56.7828397Z 
2026-06-03T22:00:56.7828509Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-03T22:00:56.7828686Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-03T22:00:56.7828786Z - Required stages: impl, unit
2026-06-03T22:00:56.7828795Z 
2026-06-03T22:00:56.7828913Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-03T22:00:56.7829089Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-03T22:00:56.7829192Z - Required stages: impl, unit
2026-06-03T22:00:56.7829201Z 
2026-06-03T22:00:56.7829311Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-03T22:00:56.7829805Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-03T22:00:56.7829918Z - Required stages: impl, unit
2026-06-03T22:00:56.7829928Z 
2026-06-03T22:00:56.7830043Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-03T22:00:56.7830217Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-03T22:00:56.7830320Z - Required stages: impl, unit
2026-06-03T22:00:56.7830330Z 
2026-06-03T22:00:56.7830450Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-03T22:00:56.7830644Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-03T22:00:56.7830744Z - Required stages: impl, unit
2026-06-03T22:00:56.7830753Z 
2026-06-03T22:00:56.7830897Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-03T22:00:56.7831147Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-03T22:00:56.7831246Z - Required stages: impl, unit
2026-06-03T22:00:56.7831256Z 
2026-06-03T22:00:56.7831359Z ### REQ-HAZARD-ID-CHARSET
2026-06-03T22:00:56.7831642Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-03T22:00:56.7831877Z - Required stages: impl, unit
2026-06-03T22:00:56.7831888Z 
2026-06-03T22:00:56.7831998Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-03T22:00:56.7832201Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-03T22:00:56.7832304Z - Required stages: impl, unit
2026-06-03T22:00:56.7832462Z 
2026-06-03T22:00:56.7832573Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-03T22:00:56.7832869Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-03T22:00:56.7832973Z - Required stages: impl, unit
2026-06-03T22:00:56.7832982Z 
2026-06-03T22:00:56.7833099Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-03T22:00:56.7833231Z - Title: Deferred rows survive poll drain (4.4)
2026-06-03T22:00:56.7833333Z - Required stages: impl, unit
2026-06-03T22:00:56.7833342Z 
2026-06-03T22:00:56.7833455Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-03T22:00:56.7833600Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-03T22:00:56.7833699Z - Required stages: impl, unit
2026-06-03T22:00:56.7833708Z 
2026-06-03T22:00:56.7833822Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-03T22:00:56.7833989Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-03T22:00:56.7834094Z - Required stages: impl, unit
2026-06-03T22:00:56.7834103Z 
2026-06-03T22:00:56.7834205Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-03T22:00:56.7834401Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-03T22:00:56.7834507Z - Required stages: impl, unit
2026-06-03T22:00:56.7834516Z 
2026-06-03T22:00:56.7834625Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-03T22:00:56.7834780Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-03T22:00:56.7834880Z - Required stages: impl, unit
2026-06-03T22:00:56.7834889Z 
2026-06-03T22:00:56.7834998Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-03T22:00:56.7835161Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-03T22:00:56.7835268Z - Required stages: impl, unit
2026-06-03T22:00:56.7835277Z 
2026-06-03T22:00:56.7835390Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-03T22:00:56.7835588Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-03T22:00:56.7835689Z - Required stages: impl, unit
2026-06-03T22:00:56.7835699Z 
2026-06-03T22:00:56.7835802Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-03T22:00:56.7836008Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-03T22:00:56.7836116Z - Required stages: impl, unit
2026-06-03T22:00:56.7836125Z 
2026-06-03T22:00:56.7836232Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-03T22:00:56.7836420Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-03T22:00:56.7836523Z - Required stages: impl, unit
2026-06-03T22:00:56.7836532Z 
2026-06-03T22:00:56.7836649Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-03T22:00:56.7836808Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-03T22:00:56.7836906Z - Required stages: impl, unit
2026-06-03T22:00:56.7836920Z 
2026-06-03T22:00:56.7837039Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-03T22:00:56.7837281Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-03T22:00:56.7837380Z - Required stages: impl, unit
2026-06-03T22:00:56.7837389Z 
2026-06-03T22:00:56.7837492Z ### REQ-HAZARD-CONPTY-DSR
2026-06-03T22:00:56.7837726Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-03T22:00:56.7837832Z - Required stages: impl, unit
2026-06-03T22:00:56.7837841Z 
2026-06-03T22:00:56.7837942Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-03T22:00:56.7838170Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-03T22:00:56.7838270Z - Required stages: impl, unit
2026-06-03T22:00:56.7838281Z 
2026-06-03T22:00:56.7838386Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-03T22:00:56.7838693Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-03T22:00:56.7838884Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7838894Z 
2026-06-03T22:00:56.7838999Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-03T22:00:56.7839298Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-03T22:00:56.7839701Z - Required stages: impl, unit
2026-06-03T22:00:56.7839721Z 
2026-06-03T22:00:56.7839872Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-03T22:00:56.7840575Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-03T22:00:56.7840686Z - Required stages: impl, unit, int
2026-06-03T22:00:56.7840696Z 
2026-06-03T22:00:56.7840820Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-03T22:00:56.7841933Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-03T22:00:56.7842042Z - Required stages: 
2026-06-03T22:00:56.7842052Z 
2026-06-03T22:00:56.7842172Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-03T22:00:56.7842995Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-03T22:00:56.7843099Z - Required stages: 
2026-06-03T22:00:56.7843109Z 
2026-06-03T22:00:56.7843226Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-03T22:00:56.7844056Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-03T22:00:56.7844163Z - Required stages: impl, unit
2026-06-03T22:00:56.7844172Z 
2026-06-03T22:00:56.7844280Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-03T22:00:56.7844944Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-03T22:00:56.7845048Z - Required stages: impl, unit
2026-06-03T22:00:56.7845059Z 
2026-06-03T22:00:56.7845163Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-03T22:00:56.7846290Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-03T22:00:56.7846396Z - Required stages: impl, unit
2026-06-03T22:00:56.7846407Z 
2026-06-03T22:00:56.7846496Z ## How to report back
2026-06-03T22:00:56.7846506Z 
2026-06-03T22:00:56.7846707Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-03T22:00:56.7846718Z 
2026-06-03T22:00:56.7846805Z     {
2026-06-03T22:00:56.7846919Z       "code": "requirement_quality",
2026-06-03T22:00:56.7847025Z       "requirementId": "REQ-...",
2026-06-03T22:00:56.7847216Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-03T22:00:56.7847321Z       "message": "<short reason>",
2026-06-03T22:00:56.7847446Z       "suggestedRevision": "<optional rewrite>"
2026-06-03T22:00:56.7847534Z     }
2026-06-03T22:00:56.7847550Z 
2026-06-03T22:00:56.7847764Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-03T22:00:56.7847921Z deterministic findings above don't need to be repeated.
